Computer communication networks enable multiple computers to communication with one another to facilitate the exchange of information and to increase productivity. These networks are also used to couple resources to the computers so that the resources are shared and thus, more efficiently used. For example, a printer is a commonly shared resource on a computer network. By communicating print jobs from multiple computers to a commonly shared printer for output, a number of advantages are gained. For one, each computer no longer requires its own dedicated printer for the output of documents. This reduction in the number of printers required to support multiple computers may represent a significant financial savings for an organization. Additionally, the expense of maintaining and providing supplies for printers is reduced because the sharing of printer resources reduces the number of printers that need to be maintained by the organization.
Another benefit of sharing a printer on a computer network is that the printer is used more efficiently. When a printer is not printing a document, it is drawing power for no apparent purpose other than to be ready for printing a document. By coupling multiple computers to a printer, the printer is likely to process more jobs than if it was only coupled to a single computer. Consequently, the printer produces more documents over its life than if it was coupled to one computer only.
Although there are significant benefits to the coupling of multiple computers to a shared resource, such as a printer, there are some drawbacks as well. For one, the users do not schedule their requests for use of the shared resource. As a result, a shared resource may receive requests for the resource at approximately the same time. In this situation, the shared resource requires a job manager or an access arbiter. An access arbiter may accept a request for use of the resource and thereafter signal to other requesters that the resource is busy until the current job being performed is finished or otherwise terminated. However, this type of access arbiter is not preferred as it places the burden of continuing to poll the resource for access on the requesting computer or its user.
In an effort to offload the scheduling of jobs at a shared resource, job managers have been developed for shared resources. These job managers may be computer programs that execute on a server for the computer network or they may execute in the controller of a shared resource. For example, a print job manager may execute on a server of a client/server network. However, peer-to-peer networks and other network requirements have led to the incorporation of a job manager within the print engine of a printer. The job manager, whether resident on a server or printer, receives print job tickets that are generated by the user devices on the computer network and places them in a queue. A job ticket is a data structure that identifies the user requesting the printer, the digital document to be printed, and the parameters for performing the print job, such as the paper size and other printing parameters. The management of the queue may be based on a number of factors including user priorities, the size of the job, and the order in which the print jobs are received.
Printer technology has continued to improve. For example, the time required for generating and outputting a document from a printer has been significantly reduced. This time reduction increases the throughput of a printer so the time that a job ticket spends in the queue is reduced. In some aspects, this increase in speed simplifies the management of the job queue for the print job manager. However, this improvement has adversely impacted users.
Specifically, a significant number of print job tickets are able to be performed in a first in, first out (FIFO) manner. Thus, multiple users may send multiple print job tickets to a shared printer and the job manager interleaves these print job tickets in the queue it manages. The job manager at the printer may be able to process all of the job tickets before the users arrive at the printer to collect their printed documents. Because the job manager interleaved the job tickets in the print job queue, the printer jobs are in the output tray of the printer in an interleaved order. Thus, users are required to sort through the entire output stack of a printer to look for each of the jobs sent to the printer. Furthermore, the user must remember the jobs sent to the printer so they are able to collect all of their jobs. Consequently, worker productivity is lost at the output tray of the printer as users gather to sort through the output documents multiple times and inquire from one another whether one user mistakenly took another user's document.
In some cases, one user does take another user's document and the requesting user, after becoming frustrated in looking for the missing job, must return to his or her computer and send another job ticket to the print job manager. This not only wastes the worker's time and resources, but it also is an inefficient use of the printer resources as the document must be printed a second time. The first document is typically discarded by the user that mistakenly obtained it or it is returned to the output area, where it is likely discarded because a second copy of the document was already obtained.